/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package treegenerator;

import java.math.*;
import java.io.*;
import java.util.*;
import javax.swing.*;

/**
 *
 * @author RaMoNs
 */
public final class Utilidades {

    public Utilidades() {
    }

    public static int cantidadDeCifras(int numero) {
        return Integer.toString(numero).length();
    }

    public static int cantidadDeCifras(long numero) {
        return Long.toString(numero).length();
    }

    public static boolean esMultiploDeCinco(int numero) {
        if ((numero % 5) == 0) {
            return true;
        }
        return false;
    }

    public static boolean esMultiploDeTres(int numero) {
        if ((numero % 3) == 0) {
            return true;
        }
        return false;
    }

    public static boolean esPar(int numero) {
        if ((numero % 2) == 0) {
            return true;
        }
        return false;
    }

    public static boolean esImpar(int x) {
        return !esPar(x);
    }

    public static boolean esNegativo(int numero) {
        if (numero < 0) {
            return true;
        } else {
            return false;
        }
    }

    public static boolean esMultiploDeCinco(long numero) {
        if ((numero % 5) == 0) {
            return true;
        }
        return false;
    }

    public static boolean esMultiploDeTres(long numero) {
        if ((numero % 3) == 0) {
            return true;
        }
        return false;
    }

    public static boolean esPar(long numero) {
        if ((numero % 2) == 0) {
            return true;
        }
        return false;
    }

    public static boolean esImpar(long x) {
        return !esPar(x);
    }

    public static boolean esNegativo(long numero) {
        if (numero < 0) {
            return true;
        } else {
            return false;
        }
    }

    public static int[] arrayObjectToArrayInt(Object[] arrayObject) {
        int arrayInt[] = new int[arrayObject.length];
        String[] c = new String[arrayObject.length];

        for (int i = 0; i < arrayObject.length; i++) {
            c[i] = arrayObject[i].toString();
            arrayInt[i] = Integer.parseInt(c[i]);
        }

        return arrayInt;
    }

    public static String[] arrayIntToArrayString(int[] arrayInt) {
        String[] arrayString = new String[arrayInt.length];
        for (int i = 0; i < arrayInt.length; i++) {
            arrayString[i] = Integer.toString(arrayInt[i]);
        }

        return arrayString;
    }

    public static String agregarEspacios(String numero, int n) {
        String numeroConEspacios = numero;
        int longitudNumero = numero.length();
        while (longitudNumero < n) {
            numeroConEspacios = " " + numeroConEspacios;
            longitudNumero = numeroConEspacios.length();
            if (longitudNumero == n) {
                return numeroConEspacios;
            }
        }
        return numero;
    }

    public static String ingresarTexto(String mensaje) {
        return JOptionPane.showInputDialog(mensaje);
    }

    public static void abrirArchivoConSO(String pPath) {

        try {
            String[] cmd = new String[5];
            // interprete de comandos de windows, cmd.exe
            cmd[0] = "cmd";

            // 1er parametro /C le indica a cmd que ejecute el comando a continuacion
            cmd[1] = "/C";

            // 2do parametro start es el programa que abre cualquier archivo
            // con su programa asociado
            cmd[2] = "start";
            // por ejemplo, si en una consola escribimos,
            // start uno.txt se abre notepad con el archivo abierto.

            cmd[3] = "\"\""; // titulo de la ventana

            cmd[4] = "\"" + pPath + "\""; // path del archivo que deseamos abrir

            Runtime rt = Runtime.getRuntime();

            rt.exec(cmd);

        } catch (Exception e) {
            // TODO: Add catch code
            e.printStackTrace();
        }

    }

    public static PrintStream crearArchivo(String nombreArchivo) {
        try {
            FileOutputStream os = new FileOutputStream(nombreArchivo);
            PrintStream ps = new PrintStream(os);
//                ps.close();
//                Utilidades.abrirArchivoConSO(nombreArchivo);
            return ps;
        } catch (Exception e) {
            System.out.println("Error: " + e.getMessage());
        }
        return null;
    }

    public static BufferedReader leerArchivo(String archivo) {
        File f = new File(archivo);
        BufferedReader entrada;
        String[] lineasArchivo = new String[200];
//        int cantLineas = 0;
        try {
            return entrada = new BufferedReader(new FileReader(f));
//            String linea;
//
//            while (entrada.ready()) {
//                linea = entrada.readLine();
//                //System.out.println(linea);
//                lineasArchivo[cantLineas] = linea;
//                cantLineas = cantLineas + 1;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
    
    public static void mostrarEspacios(int cant){
        for (int i = 0; i < cant; i++) {
         System.out.print(" ");   
        }
    }
    public static void mostrarEnters(int cant){
        for (int i = 0; i < cant; i++) {
         System.out.println();   
        }
    }
}
